// 常用函数工具类
const util = require('./util')
/**
 * loginErrMsg登录提示信息
 */
var loginErrMsg = {
  'wx_login_fail': '您的网路有问题，请检查您的网络！'
}
/**
 * options登录参数
 */
var loginOptions = {
  url: null,
  method: 'POST',
  data:{},
  success: function () {
    console.log('登录成功！')
  },
  fail: function () {
    console.log('登录失败！')
  },
  complete: function(){
    console.log('登录complete')
  }
}
/**
 * 设置同步登录
 */
var logining = false
/**
 * login登录
 */
function login(options) {
  // 设置同步登录
  if (logining){
    return
  }

  util.showLoading('登录中···')
  logining = true
  loginOptions = util.extend(loginOptions, options)

  wx.login({
    success: function (res) {
      var code = res.code
      var data = {
        code: code,
        mobile: wx.getStorageSync('SESSION_MOBILE'),
        // mobileCodeType: '1',
        type: '1',//登录类型---小程序
      }

      // 判断是否存在验证码
      var mobileCode = wx.getStorageSync('SESSION_CODE')
      if (mobileCode){//手动登陆
        data.mobileCode = mobileCode;
        data.mobileCodeType = '1';//验证码类型
        wx.removeStorageSync('SESSION_CODE');
        
        if (wx.getStorageSync('SESSION_ICON')) {
          data.headImg = wx.getStorageSync('SESSION_ICON')
        }
        if (wx.getStorageSync('SESSION_NAME')) {
          data.nickName = wx.getStorageSync('SESSION_NAME')
        } 

      }else{//自动登陆
        // data.mobileCodeType = '1';        
      }

 

      var options = {
        url: loginOptions.url,
        method: loginOptions.method,
        data: data,
        success: function(res){
          wx.setStorageSync('SESSION_KEY', res.token || res)
          loginOptions.success(res.isNewMem)
        },
        fail: function(err){
          loginOptions.fail(err)
        },
        complete: function(){
          logining = false
          util.hideLoading()
          loginOptions.complete()
        }
      }

      util.XHR(options)
    },
    fail: function (errMsg) {
      logining = false
      util.hideLoading()
      loginOptions.complete()

      console.log(errMsg)
    }
  })
}
/**
 * setLoginUrl设置登录与web服务器处理地址
 */
function setLoginUrl (url) {
  loginOptions.url = url
}
/**
 * setLoginPar设置登录的参数
 */
// function setLoginPar(data) {
//   loginOptions.data = data
// }

module.exports = {
    login: login,
    setLoginUrl: setLoginUrl
}